<template>
  <div class="contarner-page" @click.stop="showLanguageHandel">
    <page-header ref="languageRef"></page-header>
    <main>
      <div class="downloader flex_ccenter" v-if="!success">
        <div class="container">
          <div class="hero-widgets flex_between c-fff">
            <div class="tool-item shou flex_center" @click="changeTab(0)">
              <img src="/static/images/video.svg" alt="savinginsta video" />
              <span class="f-16">Video</span>
            </div>
            <div class="tool-item shou flex_center" @click="changeTab(1)">
              <img src="/static/images/Photo.svg" alt="savinginsta photo" />
              <span class="f-16">Photo</span>
            </div>
            <div class="tool-item shou flex_center" @click="changeTab(2)">
              <img src="/static/images/Reels.svg" alt="savinginsta reels" />
              <span class="f-16">Reels</span>
            </div>
            <div class="tool-item shou flex_center" @click="changeTab(3)">
              <img src="/static/images/Story.svg" alt="savinginsta story" />
              <span class="f-16">Story</span>
            </div>
            <div class="tool-item shou flex_center" @click="changeTab(4)">
              <img src="/static/images/Igtv.svg" alt="savinginsta IGTV" />
              <span class="f-16">IGTV</span>
            </div>
          </div>
          <div class="banner-heading flex_ccenter">
            <div class="heading-item" v-show="current == 0">
              <h1 class="title fw700 f-42 c-fff">Instagram Video İndirme</h1>
              <h2 class="sub c-fff f-18 fw400">
                Instagram Videosunu, Fotoğraflarını, Makaralarını, Hikayelerini
                ve IGTV'yi İndirin Çevrimiçi İçerik
              </h2>
            </div>
            <div class="heading-item" v-show="current == 1">
              <nuxt-link to="/tr/instagram-photo-download">
                <div @click="goToTop('Photo')" class="tItem">
                  <h3 class="title fw700 f-42 c-fff shou">
                    Instagram Fotoğraf İndirici
                  </h3>
                </div>
              </nuxt-link>
              <p class="sub c-fff f-18 fw400">
                Instagram FOTOĞRAF URL'sini aşağıya girin
              </p>
            </div>
            <div class="heading-item" v-show="current == 2">
              <nuxt-link to="/tr/instagram-reels-video-download">
                <div @click="goToTop('reels')" class="tItem">
                  <h3 class="title fw700 f-42 c-fff shou">
                    Instagram Reels'ı İndirin
                  </h3>
                </div>
              </nuxt-link>
              <p class="sub c-fff f-18 fw400">
                Instagram Reels URL'sini aşağıya girin
              </p>
            </div>
            <div class="heading-item" v-show="current == 3">
              <nuxt-link to="/tr/instagram-story-download">
                <div @click="goToTop('story')" class="tItem">
                  <h3 class="title fw700 f-42 c-fff shou">
                    Instagram Hikaye İndir
                  </h3>
                </div>
              </nuxt-link>
              <p class="sub c-fff f-18 fw400">
                Instagram Hikayeleri URL'sini aşağıya girin
              </p>
            </div>
            <div class="heading-item" v-show="current == 4">
              <nuxt-link to="/tr/igtv-downloader">
                <div @click="goToTop('igtv')" class="tItem">
                  <h3 class="title fw700 f-42 c-fff shou">
                    Video IGTV'yi İndirin
                  </h3>
                </div>
              </nuxt-link>
              <p class="sub c-fff f-18 fw400">
                Instagram IGTV URL'sini aşağıya girin
              </p>
            </div>
          </div>
          <div class="form flex_center">
            <div class="input-box flex_between">
              <!-- <input
                type="text"
                class="input f-18"
                v-model="input"
                @input="handleInput"
                @paste="handleInput"
                placeholder="Paste URL Instagram"
                list="fruits"
                name="fruit"
              />
              <datalist id="fruits">
                <option value="Apple"></option>
                <option value="Banana"></option>
                <option value="Cherry"></option>
              </datalist> -->
              <input
                type="text"
                class="input f-18"
                v-model="input"
                :disabled="isHttpLoading"
                @input="handleInput"
                @paste="handleInput"
                @keydown="sendDownload($event)"
                placeholder="Paste URL Instagram"
              />
              <div
                class="Paste shou flex_center"
                @click="handleClickPasted"
                v-if="input == ''"
              >
                <div class="btnbg"></div>
                <div class="f-16 c-000 fw700">Paste</div>
              </div>
              <div
                class="clear shou flex_center"
                v-if="input != '' && !isHttpLoading"
                @click.stop="input = ''"
              >
                <div class="btnbg"></div>
                <div class="f-16 c-000 fw700">Clear</div>
              </div>
            </div>
            <div
              v-if="!isHttpLoading"
              @click.stop="downloadHandel"
              class="submit shou fw700 c-fff flex_center"
            >
              Download
            </div>
            <div v-else class="submit shou fw700 c-fff flex_center">
              Please wait
            </div>
          </div>
          <div class="app-submit flex_ccenter">
            <div
              class="submit flex_center"
              v-if="!isHttpLoading"
              @click.stop="downloadHandel"
            >
              <div class="fw700 c-fff f-21">Download</div>
            </div>
            <div class="submit flex_center" v-else>
              <div class="fw700 c-fff f-21">Please wait</div>
            </div>
          </div>
          <div class="loading" v-if="isHttpLoading">
            <div class="loading-dots flex_center">
              <div class="dot"></div>
              <div class="dot"></div>
              <div class="dot"></div>
              <div class="dot"></div>
            </div>
            <div class="tips f-18 flex_center">
              <div>Veriler alınıyor, lütfen birkaç saniye bekleyin!</div>
            </div>
          </div>
          <div class="error flex_ccenter" v-if="httpError1">
            <div class="hono flex_">
              <div class="error-img"></div>
              <div class="error-img"></div>
              <div class="error-img"></div>
            </div>
            <div class="errMsg f-18">
              Site, bağlantınızı gizli olduğundan işleyemiyor
            </div>
          </div>
          <div class="error flex_ccenter" v-if="httpError2">
            <div class="hono flex_">
              <div class="error-img"></div>
              <div class="error-img"></div>
              <div class="error-img"></div>
            </div>
            <div class="errMsg f-18">
              Girdiğiniz veriler bir bağlantı değil, lütfen geçerli bir bağlantı
              girin örnek:
              <div>https://www.instagram.com/reel/Cml9qu-ISqx</div>
            </div>
          </div>
        </div>
      </div>
      <!-- 广告位start -->
      <!-- 广告位end -->
      <div class="container" v-if="!success">
        <div class="body-content">
          <div class="title-box">
            <h3 class="title f-36 c-000 italic">
              Savinginsta.Com'un tüm özellikleri
            </h3>
            <p class="sub f-16 c-ccc">
              Savinginsta, tüm Instagram video çeşitleriyle uyumludur ve resim
              bağlantıları.
            </p>
          </div>
          <div class="list-tools-pc">
            <div class="tool-box flex_between">
              <div class="tool-info">
                <nuxt-link to="/tr">
                  <div @click="goToTop('video')" class="tItem">
                    <h4>Instagram video indirici</h4>
                  </div>
                </nuxt-link>
                <p>
                  Savinginsta kendi indirmenizi sağlayacak şekilde
                  tasarlanmıştır Instagram'dan içerik. Her ikisini de indirmek
                  için destek sunar Insta'dan bireysel ve çoklu videolar.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  src="/static/images/instagram-video-downloader.webp"
                  alt="Instagram video downloader"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  src="/static/images/instagram-video-downloader-app.webp"
                  alt="Instagram video downloader"
                />
              </div>
            </div>
            <div class="tool-box tool-reverse flex_between">
              <div class="tool-info">
                <nuxt-link to="/tr/instagram-photo-download">
                  <div @click="goToTop('Photo')" class="tItem">
                    <h4>Instagram fotoğraf indirici</h4>
                  </div>
                </nuxt-link>
                <p>
                  Savinginsta'nın Instagram Fotoğraf İndiricisi bunu zahmetsiz
                  hale getiriyor kolajlar da dahil olmak üzere tek veya birden
                  fazla fotoğrafı kaydetmek için, Instagram'dan. Bu araçla tek
                  tek gönderileri indirme görüntüler veya Instagram
                  fotoğraflarından oluşan bir koleksiyon basittir ve basit.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  loading="lazy"
                  src="/static/images/instagram-photo-downloader.webp"
                  alt="Instagram photo downloader"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  loading="lazy"
                  src="/static/images/instagram-photo-downloader-app.webp"
                  alt="Instagram photo downloader"
                />
              </div>
            </div>
            <div class="tool-box flex_between">
              <div class="tool-info">
                <nuxt-link to="/tr/instagram-reels-video-download">
                  <div @click="goToTop('reels')" class="tItem">
                    <h4>Instagram Reels'ı İndirin</h4>
                  </div>
                </nuxt-link>
                <p>
                  Savinginsta'nın Instagram Reels İndiricisi şunları yapmanızı sağlar:
                   Instagram gönderilerinden Reels videolarını zahmetsizce indirin
                   Instagram'ın olduğu yerde basit bir çözüm sağlayarak cihazınıza
                   kendisi bu işlev için destek sunmuyor.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  loading="lazy"
                  src="/static/images/download-instagram-reels.webp"
                  alt="Download Instagram Reels"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  loading="lazy"
                  src="/static/images/download-instagram-reels-app.webp"
                  alt="Download Instagram Reels"
                />
              </div>
            </div>
            <div class="tool-box tool-reverse flex_between">
              <div class="tool-info">
                <nuxt-link to="/tr/igtv-downloader">
                  <div @click="goToTop('igtv')" class="tItem">
                    <h4>IGTV indiricisi</h4>
                  </div>
                </nuxt-link>
                <p>
                  Instagram hikayeleri kullanıcılara farklı bir platform sunuyor
                   günlük deneyimlerini fotoğraf ve videolarla paylaşıyorlar.
                   geniş kitle. Bazen favorilerinizi kaydetmek isteyebilirsiniz
                   hikaye, ancak bu işlevsellik uygulamada mevcut değil.
                   Savinginsta, bu sorunu,
                   kullanıcıların Instagram hikayelerini kolayca indirip görüntülemesine olanak tanır
                   çevrimdışı, unutulmaz içeriğin asla kaybolmamasını sağlar.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  loading="lazy"
                  src="/static/images/igtv-downloader.webp"
                  alt="IGTV downloader"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  loading="lazy"
                  src="/static/images/igtv-downloader-app.webp"
                  alt="IGTV downloader"
                />
              </div>
            </div>
            <div class="tool-box flex_between">
              <div class="tool-info">
                <nuxt-link to="/tr/instagram-story-download">
                  <div @click="goToTop('story')" class="tItem">
                    <h4>Instagram Hikaye Görüntüleyici</h4>
                  </div>
                </nuxt-link>
                <p>
                  IGTV daha uzun videolar sunar ve eğer bunu yapamıyorsanız
                   bunları hemen görüntüleyin, bunları indirme seçeneğiniz vardır
                   IGTV videolarını bilgisayarınıza aktarın. Bu, rahatça yapmanızı sağlar
                   daha sonra internet olmasa bile tekrar ziyaret edin ve keyfini çıkarın
                   bağlantı sağlar ve IGTV içeriğiyle ilgili endişeleri ortadan kaldırır
                   kaldırılıyor veya kullanılamıyor.
                </p>
              </div>
              <div class="tool-thumb">
                <img
                  loading="lazy"
                  src="/static/images/instagram-story-download.webp"
                  alt="Instagram Story Download"
                />
              </div>
              <div class="tool-thumb-app">
                <img
                  loading="lazy"
                  src="/static/images/instagram-story-download-app.webp"
                  alt="Instagram Story Download"
                />
              </div>
            </div>
          </div>
          <div class="app-box">
            <div class="app-box__info">
              <h3 class="app-box__title f-21 fw700 c-000">
                Uygulama Insta Downloader ile indirin
              </h3>
              <p class="f-16 c-ccc">
                Uygulamamız indirme için hızlı ve basit bir çözüm sunar
                 Instagram videoları, HD kalitesinde videolar sağlar
                 filigranlar.
              </p>
            </div>
            <div class="app-link">
              <a 
                  target="_blank" href="https://play.google.com/store/apps/details?id=ins.freevideodownload.pro">
                <img src="/static/images/google-play.webp" alt="Download app " />
              </a>
              <a href="https://apps.apple.com/us/app/repost-for-video-save-story/id6462401460"  target="_blank">
                <img src="/static/images/IOS.webp" alt="Download app " />
              </a>
            </div>
          </div>
          <div class="quick-info">
            <h3 class="f-32 c-000">
              SAVINGINSTA - EN İYİ INSTAGRAM İNDİRME ARACI
            </h3>
            <p class="f-16 c-ccc">
              Savinginsta, üst düzey bir Instagram indiricisi olarak öne çıkıyor.
               yüksek kaliteli içeriği hızlı bir şekilde indirmek için ustalıkla hazırlanmış
               Instagram. İndirmek için en etkili yöntemi ararken
               Instagram medyası Savinginsta indiricisi lider olarak ortaya çıkıyor
               üçüncü taraf çözümü.
            </p>
            <p class="f-16 c-ccc">
              Dünyanın en popüler fotoğraf paylaşım uygulaması olarak bilinen Instagram,
               her gün milyonlarca fotoğrafın yüklenmesine tanık oluyor. Bunun için
               anlarda, bir Instagram video indiricisinin gerekliliği ortaya çıkıyor
               acil ihtiyaçlarınıza kusursuz bir çözüm sağlıyor.
               Bu araç, bilgilerini korumak isteyen herkes için gereklidir.
               favori Instagram içeriğini verimli bir şekilde kullanın.
            </p>
          </div>
          <div class="features c-fff">
            <h3 class="h3 fw700 f-21">
              Savinginsta Instagram video Downloader'ın özellikleri:
            </h3>
            <div class="attributes-list flex_between">
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Instagram videosunu indirin Hızlı, kolay ve güvenli.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Instagram hesabınızdan çıkış yapabilirsiniz.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Sadece bir düğmeye tıklayarak Instagram görsellerini indirebilirsiniz
                   ve videolar.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Görüntüleri ve videoları orijinal yüksek seviyelerinde indirin ve kaydedin
                   tanım ve kalite.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Kişisel hesaplardan Instagram videolarını indirin ve kaydedin.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Yüksek hız: Şu an itibariyle Savinginsta en hızlısını sunuyor
                   indirme hızları.
                </div>
              </div>
            </div>
          </div>
          <div class="how">
            <div class="how-title">
              <h3 class="f-36 c-000 italic">
                IG'den tasarruf etmek için Savinginsta Instagram Downloader nasıl kullanılır?
              </h3>
              <div class="note c-ccc f-16">
                Not: İstediğiniz Instagram videosunun veya fotoğrafının
                 indirme herkese açık bir hesaptan yapılır.
              </div>
            </div>
            <div class="steps">
              <div class="step">
                <div class="one">
                  <span class="fw700 c-blue f-16">Adım01:</span>
                  <span class="f-16 c-000"
                    >Instagram Fotoğraflarının ve Videolarının URL'sini kopyalayın</span
                  >
                </div>
                <div class="app-step">
                  <div class="fw700 c-000 f-16">Instagram Uygulamasında:</div>
                  <div class="c-000 f-16">
                    iOS için: Instagram fotoğraf URL'sini almak için dokunun.
                  </div>
                  <div class="c-000 f-16">
                    Android için: Gönderinin üstünü tıklayın ve 'Kopyala' seçeneğini seçin.
                     Instagram URL'si'ne tıklayın ve ardından 'Paylaş URL'sini Kopyala'ya basın. Bağlantı olacak
                     panonuza kopyalandı.
                  </div>
                  <div class="fw700 c-000 f-16">- PC/Mac'te:</div>
                  <div class="c-000 f-16">
                    Instagram videosunun veya fotoğrafının tarihine sağ tıklayın ve
                     Instagram içeriğini indirmek için "Bağlantı Adresini Kopyala"yı seçin
                     masaüstünüz.
                  </div>
                </div>
              </div>
              <div class="step">
                <div class="one">
                  <span class="fw700 c-blue f-16">Adım02:</span>
                  <span class="f-16 c-000">
                    URL'yi Savinginsta.App'a yapıştırın</span
                  >
                </div>
                <div class="app-step">
                  <div class="c-000 f-16">
                    Özel Instagram olan Savinginsta.App'a gidin
                     indirici.
                  </div>
                  <div class="c-000 f-16">
                    Kopyalanan URL'yi kopyalayıp verilen metin alanına yapıştırın.
                  </div>
                </div>
              </div>
              <div class="step">
                <div class="one">
                  <span class="fw700 c-blue f-16">Adım03:</span>
                  <span class="f-16 c-000">İndirmeyi Başlat</span>
                </div>
                <div class="app-step">
                  <div class="c-000 f-16">
                    Instagram videosunu başlatmak için "İndir" düğmesine tıklayın veya
                     fotoğraf indirme işlemi.
                  </div>
                  <div class="fw700 c-000 f-16">
                    Önemli Kullanım Bilgileri
                  </div>
                  <div class="c-000 f-16">
                    Savinginsta öncelikle video indirmek için tasarlanmıştır ve
                     Kendi Instagram hesabınızdan görüntüler.
                  </div>
                  <div class="c-000 f-16">
                    Kullanıcı gizliliğine öncelik veriyoruz ve reddetme hakkını saklı tutuyoruz
                     Araçlarımızın başkalarının haklarını ihlal etmek için kullanılması durumunda hizmet
                     gizlilik veya yetkisiz materyallere erişim.
                  </div>
                </div>
              </div>
            </div>
            <div class="user-note f-16">
              <div class="app-tip"></div>
              Politikalarımızın kapsamlı bir şekilde anlaşılması için

              <a class="fw700 c-blue" href="/terms-of-service">
                lütfen Hizmet Şartlarımızın tamamını buradan okuyun.</a
              >
            </div>
          </div>
          <div class="faq-section">
            <h3 class="faq-title f-36 c-000 italic">FAQ</h3>
            <div class="accordion">
              <div
                id="faq"
                itemscope="itemscope"
                itemtype="https://schema.org/FAQPage"
              >
                <div
                  itemprop="mainEntity"
                  itemscope="itemscope"
                  itemtype="https://schema.org/Question"
                  class="accordion-item"
                  :key="k"
                  v-for="(item, k) in faqList"
                >
                  <h4 itemprop="name" class="accordion-title fw700 f-16">
                    {{ item.title }}
                  </h4>
                  <div
                    itemprop="acceptedAnswer"
                    itemscope=""
                    itemtype="https://schema.org/Answer"
                  >
                    <div
                      itemprop="text"
                      class="accordion-text f-16 c-ccc fw400"
                    >
                      {{ item.content }}
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <!-- 解析结果 start -->
      <div class="container" v-if="success">
        <success-content
          @refresh="refresh"
          :list="successList"
        ></success-content>
      </div>
      <!-- 解析结果 end -->
    </main>
    <footer>
      <div class="container">
        <div class="footer-content">
          <div class="footer-link">
            <div class="row flex_between">
              <div class="col-12">
                <div class="link-label fw700 c-000 f-21">Aletler</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/tr/instagram-story-download"
                      >Instagram Hikaye İndirici</nuxt-link
                    >
                  </li>
                  <li>
                    <nuxt-link to="/tr/instagram-reels-video-download"
                      >Instagram Makaraları İndiricisi</nuxt-link
                    >
                  </li>
                  <li>
                    <a href="https://savingtik.com/" target="_blank"
                      >Tiktok İndirici</a
                    >
                  </li>
                </ul>
              </div>
              <div class="col-6">
                <div class="link-label fw700 c-000 f-21">Destek</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/contact"> Temas etmek </nuxt-link>
                  </li>
                  <li>
                    <nuxt-link to="/blog"> Blog </nuxt-link>
                  </li>
                </ul>
              </div>
              <div class="col-6">
                <div class="link-label fw700 c-000 f-21">Yasal</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/terms-of-service">
                      Kullanım Şartları
                    </nuxt-link>
                  </li>
                  <li>
                    <nuxt-link to="/privacy-policy"> Gizlilik Politikası </nuxt-link>
                  </li>
                </ul>
              </div>
            </div>
          </div>
          <div class="copyright flex_ccenter">
            <b class="fw700 f-21 c-000"
              >Instagram veya Meta ile bağlantımız yok</b
            >
            <div class="c-ccc f-16">
              © {{new Date().getFullYear()}} Insta Downloader All rights reserved.
            </div>
          </div>
        </div>
      </div>
    </footer>
  </div>
</template>

<script>
import { mapState, mapGetters, mapMutations } from "vuex";
import pageHeader from "~/components/page-header.vue";
import SuccessContent from "~/components/success-content.vue";
import CryptoJS from "crypto-js";
import { handleClick, checkString } from "@/plugins/Firebase.js";

export default {
  components: { pageHeader, SuccessContent },
  name: "IndexPage",
  head: {
    htmlAttrs: {
      lang: "tr",
    },
    bodyAttrs: {
      "data-lang": "tr",
    },
    title:
      "Instagram İndirici - Instagram Videosunu çevrimiçi indirin - Savinginsta",
    meta: [
      { property: "og:locale", content: "tr" },
      //Page Information
      {
        name: "description",
        content:
          "Savinginsta: Kullanıcı dostu aracımızla Instagram videolarını, makaralarını ve fotoğraflarını kolayca indirin. Instagram videolarınızı herhangi bir cihaza hızlı ve güvenli bir şekilde kaydedin.",
      },
      //Schema.org Microdata
      {
        itemprop: "name",
        content:
          "Instagram İndirici - Instagram Videosunu çevrimiçi indirin - Savinginsta",
      },

      // Facebook / OpenGraph
      {
        property: "og:title",
        content:
          "Instagram İndirici - Instagram Videosunu çevrimiçi indirin - Savinginsta",
      },
      { property: "og:type", content: "website" },
      { property: "og:url", content: "https://savinginsta.com/tr" },

      {
        property: "og:description",
        content:
          "Savinginsta: Kullanıcı dostu aracımızla Instagram videolarını, makaralarını ve fotoğraflarını kolayca indirin. Instagram videolarınızı herhangi bir cihaza hızlı ve güvenli bir şekilde kaydedin.",
      },
      //Twitter
      { name: "twitter:card", content: "summary" },
      { name: "twitter:url", content: "https://savinginsta.com/tr" },
      {
        name: "twitter:title",
        content:
          "Instagram İndirici - Instagram Videosunu çevrimiçi indirin - Savinginsta",
      },
      {
        name: "twitter:description",
        content:
          "Savinginsta: Kullanıcı dostu aracımızla Instagram videolarını, makaralarını ve fotoğraflarını kolayca indirin. Instagram videolarınızı herhangi bir cihaza hızlı ve güvenli bir şekilde kaydedin.",
      },
      //multilingual
      {
        name: "google",
        content: "notranslate",
      },
      {
        itemprop: "image",
        content: "https://savinginsta.com/static/images/savinginsta_thumbnail.jpg",
      },
      {
        property: "og:image",
        content: "https://savinginsta.com/static/images/savinginsta_thumbnail.jpg",
      },
      {
        name: "twitter:image",
        content: "https://savinginsta.com/static/images/savinginsta_thumbnail.jpg",
      },
    ],
    link: [
      //multilingual
      {
        rel: "alternate",
        hreflang: "x-default",
        href: "https://savinginsta.com/tr",
      },
      {
        rel: "alternate",
        hreflang: "en",
        href: "https://savinginsta.com/",
      },
      {
        rel: "alternate",
        hreflang: "en-in",
        href: "https://savinginsta.com/in",
      },
      {
        rel: "alternate",
        hreflang: "vi",
        href: "https://savinginsta.com/vn",
      },
      {
        rel: "alternate",
        hreflang: "tr",
        href: "https://savinginsta.com/tr",
      },
      {
        rel: "alternate",
        hreflang: "id",
        href: "https://savinginsta.com/id",
      },
      {
        rel: "alternate",
        hreflang: "fr",
        href: "https://savinginsta.com/fr",
      },
      {
        rel: "alternate",
        hreflang: "pt",
        href: "https://savinginsta.com/pt",
      },
      {
        rel: "alternate",
        hreflang: "ru",
        href: "https://savinginsta.com/ru",
      },
      {
        rel: "alternate",
        hreflang: "es",
        href: "https://savinginsta.com/es",
      },
      {
        rel: "alternate",
        hreflang: "ms",
        href: "https://savinginsta.com/ms",
      },
      {
        rel: "alternate",
        hreflang: "ko",
        href: "https://savinginsta.com/ko",
      },
      {
        rel: "alternate",
        hreflang: "ja",
        href: "https://savinginsta.com/ja",
      },
      {
        rel: "alternate",
        hreflang: "jv",
        href: "https://savinginsta.com/jv",
      },
      {
        rel: "alternate",
        hreflang: "cs",
        href: "https://savinginsta.com/cs",
      },
      {
        rel: "alternate",
        hreflang: "de",
        href: "https://savinginsta.com/de",
      },
      {
        rel: "alternate",
        hreflang: "it",
        href: "https://savinginsta.com/it",
      },
      {
        rel: "alternate",
        hreflang: "pl",
        href: "https://savinginsta.com/pl",
      },
      {
        rel: "alternate",
        hreflang: "hu",
        href: "https://savinginsta.com/hu",
      },
      {
        rel: "alternate",
        hreflang: "nl",
        href: "https://savinginsta.com/nl",
      },
      {
        rel: "alternate",
        hreflang: "ro",
        href: "https://savinginsta.com/ro",
      },
      {
        rel: "alternate",
        hreflang: "el",
        href: "https://savinginsta.com/el",
      },
      {
        rel: "canonical",
        href: "https://savinginsta.com/tr",
      },
    ],
    script: [
      {
        json: {
          "@context": "https://schema.org",
          "@type": "WebSite",
          name: "Instagram İndirici - Instagram Videosunu çevrimiçi indirin - Savinginsta",
          url: "https://savinginsta.com",
          description:
            "Savinginsta: Kullanıcı dostu aracımızla Instagram videolarını, makaralarını ve fotoğraflarını kolayca indirin. Instagram videolarınızı herhangi bir cihaza hızlı ve güvenli bir şekilde kaydedin.",
          publisher: {
            "@type": "Organization",
            name: "Savinginsta",
            logo: {
              "@type": "ImageObject",
              url: "https://savinginsta.com/static/images/logo.webp",
            },
          },
        },
        type: "application/ld+json",
      },
    ],
  },
  data() {
    return {
      input: "",
      success: false,
      isHttpLoading: false,
      httpError1: false,
      httpError2: false,
      current: 0,
      successList: [],
      faqList: [
        {
          title: `Instagram Video İndirici nedir?`,
          content: `Instagram Video İndirici, Instagram fotoğraflarını, videolarını ve IGTV içeriğini daha sonra kullanmak üzere kaydetmek için tasarlanmış web tabanlı bir araçtır. Savinginsta, Instagram'dan zahmetsizce içerik indirmek için en iyi seçenek olarak öne çıkıyor.`,
        },
        {
          title: `Savinginsta'yı Kullanmak İçin Instagram Hesabıma Giriş Yapmam Gerekiyor mu??`,
          content: `Hayır, Instagram hesabınıza giriş yapmanıza gerek yoktur. Savinginsta, herhangi bir kişisel bilgi gerektirmeden Instagram'dan güvenli ve anonim indirmeler sağlar.`,
        },
        {
          title: `Instagram'dan Videoları Doğrudan Kaydedebilir miyim?`,
          content: `Instagram akışınızdan veya başkalarının hikayelerinden doğrudan video indirmek Instagram'ın kendisi aracılığıyla mümkün değildir. Ancak Savinginsta basit bir çözüm sunuyor. https:// saveinsta.com adresindeki web sitelerini ziyaret edin ve verilen basit talimatları izleyin..`,
        },
        {
          title: `Instagram Video ve Fotoğraf İndirme Hizmeti Ücretsiz mi?`,
          content: `Evet, Savinginsta bu hizmeti indirme sayısında herhangi bir sınırlama olmaksızın tamamen ücretsiz olarak sağlamaktadır.`,
        },
        {
          title: `Özel Instagram Hesaplarından İçerik İndirebilir miyim?`,
          content: `Aslında Savinginsta, özel Instagram hesaplarından video, hikaye ve fotoğraf indirmenize olanak tanır. Ayrıntılı talimatlar platformlarında mevcuttur.`,
        },
        {
          title: `Instagram Hikayelerini Kaydetmek Mümkün mü?`,
          content: `Kesinlikle. Savinginsta ile herhangi bir Instagram hikayesini görüntüleyebilir ve indirebilirsiniz. İndirmeyi başlatmak için hikayedeki üç noktaya (⁝) tıklayın, bağlantıyı kopyalayın ve Savinginsta'ya yapıştırın.`,
        },
        {
          title: `Savinginsta Bilgisayarlara İndirmeyi Destekliyor mu??`,
          content: `Evet, Savinginsta PC'lerle tamamen uyumludur ve Instagram videolarını, fotoğraflarını, hikayelerini ve daha fazlasını doğrudan bilgisayarınıza indirmenize olanak tanır.`,
        },
        {
          title: `Android Cihazlarda Instagram'dan İndirmek İçin Savinginsta'yı Kullanabilir miyim?`,
          content: `Kesinlikle. Android kullanıcıları için Instagram gönderi bağlantısını kopyalayıp Savinginsta'ya yapıştırmanız ve kaydetmeniz yeterlidir. Daha fazla ayrıntı için Android'de Instagram'dan indirmeyle ilgili kılavuzlarını ziyaret edin.`,
        },
        {
          title: `Instagram Videolarını ve Fotoğraflarını iPhone/iPad'e (iOS) Nasıl İndirebilirim??`,
          content: `Savinginsta, çeşitli video türlerini iPhone veya iPad'inize indirmek için kullanıcı dostu, adım adım bir kılavuz hazırladı. Talimatlar için bu bağlantıyı izleyin: Instagram Videolarını iPhone'a indirin.`,
        },
        {
          title: `Ya Instagram Videosu İndirmek Yerine Oynatılırsa?`,
          content: `Bu sorunu çözmek için, videoya sağ tıklayın ve sol tıklamak yerine istediğiniz kaydetme konumunu seçmek için 'Farklı Kaydet...'i seçin.`,
        },
        {
          title: `İndirildikten Sonra Videolar Nerede Saklanıyor?`,
          content: `İndirilen videolar genellikle hem Android mobil cihazlarda hem de PC'lerde 'İndirilenler' klasöründe saklanır.`,
        },
      ],
    };
  },
  computed: {
    ...mapGetters(["language"]),
  },
  mounted() {
    this.debouncedDownInput = this.debounce(this.downInput, 1000);

    //到达首页
    handleClick("guide_homepage_frist", {});
    handleClick("guide_homepage", {});
  },
  methods: {
    async downloadHandel() {
      if (this.isHttpLoading || this.input === "") return;
      this.isHttpLoading = false;
      this.httpError1 = false;
      this.httpError2 = false;
      this.input = this.input.replace(/^.*\s?https:\/\//, "https://");
      const insUrlPattern = new RegExp("^http(s|)://.*instagram.com.*/.*$");
      let type = checkString(this.input);
      if (!insUrlPattern.test(this.input)) {
        //点击解析下载按钮
        handleClick("action_ins_detect_boinsom", {
          site: "other",
          noislink: this.input,
          from: "video",
          type: type,
        });
        this.httpError2 = true;
        this.isHttpLoading = false;
        return;
      }
      //点击解析下载按钮
      handleClick("action_ins_detect_boinsom", {
        site: "other",
        from: "video",
        type: type,
      });
      //开始解析  ins_start_resolve
      handleClick("ins_start_resolve", {
        islink: this.input,
        from: "video",
        type: type,
      });
      this.isHttpLoading = true;
      try {
        let result = this.uki(this.input);
        const response = await fetch(
          "https://savinginsta.com/api/downloader/analysis",
          {
            method: "POST",
            headers: { "Content-Type": "application/json" },
            body: JSON.stringify({
              path: result,
            }),
          }
        );
        let encryptedResponse = await response.text();
        let parse = JSON.parse(encryptedResponse);
        if (parse.code != 200) {
          // 解析失败  ins_resolve_fail
          handleClick("ins_resolve_fail", {
            reason: "Failed to fetch",
            islink: this.input,
            from: "video",
            type: type,
          });
          this.httpError1 = true;
          this.isHttpLoading = false;
          return;
        } else {
          //解析成功  ins_resolve_success
          handleClick("ins_resolve_success", {
            type: type,
            from: "video",
          });
          let decryptedResponse = await this.eki(parse.data); // 使用你的解密函数
          this.successList = JSON.parse(decryptedResponse);
          this.success = true;
          this.isHttpLoading = false;
        }
      } catch (error) {
        // 解析失败  ins_resolve_fail
        handleClick("ins_resolve_fail", {
          reason: "Failed to fetch",
          islink: this.input,
          from: "video",
          type: type,
        });
        console.error(error);
        this.httpError1 = true;
        this.isHttpLoading = false;
      }
    },

    uki(input) {
      let CIPHER_ALGORITHM = "DES-CBC";
      let IV_SIZE = 8;
       
      
  try {
        const complexKey = [
          process.env.part1,
          process.env.part2,
          process.env.part3,
          process.env.part4,
          process.env.part5,
          process.env.part6,
          process.env.part7,
          process.env.part8,
        ].join("");
        const keyBytes = CryptoJS.enc.Utf8.parse(complexKey);
        const inputBytes = CryptoJS.enc.Utf8.parse(input);
        const ivBytes = CryptoJS.lib.WordArray.random(IV_SIZE);
        const encrypted = CryptoJS.DES.encrypt(inputBytes, keyBytes, {
          iv: ivBytes,
          mode: CryptoJS.mode.CBC,
          padding: CryptoJS.pad.Pkcs7,
        });
        const ciphertext = ivBytes.concat(encrypted.ciphertext);
        return ciphertext.toString();
      } catch (error) {
        console.error(error);
        return null;
      }
    },
    eki(cipherText) {
      let CIPHER_ALGORITHM = "DES-CBC";
      let IV_SIZE = 8;
       
      const complexKey = [
          process.env.part1,
          process.env.part2,
          process.env.part3,
          process.env.part4,
          process.env.part5,
          process.env.part6,
          process.env.part7,
          process.env.part8,
        ].join("");
      try {
        let keyBytes = CryptoJS.enc.Utf8.parse(
          complexKey.padEnd(CIPHER_ALGORITHM === "DES-CBC" ? 8 : 16)
        );
        let ivBytes = { iv: CryptoJS.enc.Hex.parse(process.env.DES_IV) }; // 如果使用CBC模式，需要一个初始化向量iv，这里是空向量
        let decrypted = CryptoJS.DES.decrypt(
          { ciphertext: CryptoJS.enc.Hex.parse(cipherText) },
          keyBytes,
          ivBytes
        );
        return decrypted.toString(CryptoJS.enc.Utf8);
      } catch (e) {
        console.error(e);
        return null;
      }
    },
    sendDownload(event) {
      if (event.keyCode === 13 && !this.isHttpLoading) {
        this.downloadHandel();
        event.preventDefault();
        return false;
      }
    },
    changeTab(k) {
      this.current = k;
    },
    handleInput(e) {
      this.debouncedDownInput(e);
    },
    debounce(fn, delay) {
      let timer;
      return function () {
        let context = this;
        let args = arguments;
        clearTimeout(timer);
        timer = setTimeout(() => {
          fn.apply(context, args);
        }, delay);
      };
    },

    downInput(e) {
      let type = checkString(e.target.value);
      // 粘贴链接到输入框 action_ins_paste
      handleClick("action_ins_paste", {
        islink: e.target.value,
        from: "photo",
        type: type,
      });
    },
    handleClickPasted() {
      if (!navigator.clipboard) {
        console.log("Clipboard API not available");
        return;
      }
      navigator.clipboard
        .readText()
        .then((text) => {
          this.input = text;
          let type = checkString(text);
          // 粘贴链接到输入框 action_ins_paste
          handleClick("action_ins_paste", {
            islink: text,
            from: "photo",
            type: type,
          });
        })
        .catch((err) => {
          console.error("Failed to read clipboard contents: ", err);
        });
    },
    showLanguageHandel() {
      this.$refs.languageRef.close();
    },
    refresh() {
      this.success = false;
      this.input = "";
      this.successList = [];
    },
    goToTop(site) {
      //切换页面
      handleClick("action_page_switch", {
        site: site,
        from: top,
      });
    },
    goToTools(site) {
      //切换页面
      handleClick("action_page_switch", {
        site: site,
        from: tools,
      });
    },
  },
};
</script>
<style lang="scss" scoped>
@import "@/static/style/index.css";
.loading {
  .loading-dots {
    position: relative;
    z-index: 999;
    margin-top: 70px;
  }

  .dot {
    background-color: #ffffff;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin: 0 10px;
    animation: loading-animation 1.5s infinite;
  }

  .dot:nth-child(2) {
    animation-delay: 0.5s;
  }

  .dot:nth-child(3) {
    animation-delay: 0.8s;
  }
  .dot:nth-child(4) {
    animation-delay: 1s;
  }
}
@keyframes loading-animation {
  0%,
  50%,
  80%,
  100% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.5);
  }
}
@media (max-width: 768px) {
  .loading {
    .loading-dots {
      margin-top: 26px !important;
    }
    .dot {
      width: 8px !important;
      height: 8px !important;
    }
  }
}
</style>
